/// 网络来的数据，int，double，String比较多，如何类型不匹配，会导致崩溃；所以考虑先转String，再转其他
class ParseUtil {
  static int parseInt(dynamic value, {int defaultValue = 0}) {
    if (value == null) {
      return defaultValue;
    }
    String rawString = '$value';
    return int.tryParse(rawString) ?? defaultValue;
  }

  static double parseDouble(dynamic value, {double defaultValue = 0.0}) {
    if (value == null) {
      return defaultValue;
    }
    String rawString = '$value';
    return double.tryParse(rawString) ?? defaultValue;
  }

  static String parseString(dynamic value, {String defaultValue = ""}) {
    if (value == null) {
      return defaultValue;
    }
    String rawString = '$value';
    return rawString;
  }

  static bool parseBool(dynamic value, {bool defaultValue = false}) {
    if (value == null) {
      return defaultValue;
    }
    String rawString = '$value'.toLowerCase();

    /// 特殊处理0，1，yes or no
    if ((rawString == "1") || (rawString == "yes")) {
      return true;
    }
    if ((rawString == "0") || (rawString == "no")) {
      return false;
    }
    return bool.tryParse(rawString, caseSensitive: false) ?? defaultValue;
  }
}